筆記目錄

Skip to content

議 jQuery

TLDR

  • jQuery 在現代開發中的必要性已大幅降低,因主流瀏覽器已統一 W3C 規範,且原生 JavaScript API 已涵蓋多數 jQuery 功能。
  • jQuery 缺乏框架級的結構化管理,專案規模擴大後維護成本高。
  • 建議以 Vue.js 作為 jQuery 的替代方案,因其支援漸進式導入,無需立即學習複雜的建構工具。
  • 若專案高度依賴 .NET Model Validation,目前可考慮使用 Vue 2 搭配 VeeValidate 2 作為過渡,但需評估長期維護風險。
  • ASP.NET Core Blazor 是未來轉型的潛在選項,適合希望全程使用 C# 開發的團隊。

jQuery 的技術定位與現況分析

在現代 Web 開發中,jQuery 的核心價值已逐漸被原生技術取代。以下分析其在當前環境下的優劣勢:

瀏覽器相容性與原生 API 的演進

  • 什麼情況下會遇到這個問題:當開發者在評估是否仍需引入 jQuery 函式庫以處理跨瀏覽器差異時。
  • 分析:早期 jQuery 解決了 IE 與其他瀏覽器間的語法落差,並補足了原生 DOM 操作 API 的貧瘠。然而,隨著 IE 退出市場,主流瀏覽器皆已遵循 W3C 規範,原生 JavaScript API(如 querySelector 等)已能取代絕大多數 jQuery 的選擇器與操作功能。
  • 結論:對於新專案而言,引入 jQuery 已非必要,建議優先使用原生 JavaScript。

結構化與維護性挑戰

  • 什麼情況下會遇到這個問題:當專案規模擴大,且開發者開始感受到程式碼邏輯混亂、難以管理時。
  • 分析:jQuery 本質上是函式庫而非框架,缺乏強制性的架構規範。這導致程式碼品質高度依賴開發者的個人習慣,隨著功能增加,容易形成難以維護的「義大利麵條式程式碼」。
  • 結論:若專案具備一定複雜度,應轉向使用具備組件化(Component-based)能力的框架,以提升程式碼的可維護性。

取代 jQuery 的技術選型建議

針對 .NET MVC 或 Razor Pages 的開發者,若欲降低對 jQuery 的依賴,可考慮以下路徑:

選擇 Vue.js 作為漸進式替代方案

  • 什麼情況下會遇到這個問題:當開發者希望引入前端框架,但不想立即投入高昂的學習成本(如 Webpack、Node.js 生態系)時。
  • 優勢:Vue.js 支援直接透過 <script> 標籤引入,能以漸進式方式整合進現有的 .NET 專案中,僅針對特定畫面區塊進行互動增強。
  • 注意事項:Vue 3 引入的 Composition API 對習慣傳統開發模式的工程師而言學習曲線較陡峭。若需延續 .NET Model Validation 的驗證機制,目前部分開發者仍選擇使用 Vue 2 搭配 VeeValidate 2。

選擇 ASP.NET Core Blazor

  • 什麼情況下會遇到這個問題:當開發者希望完全避開 JavaScript 生態系,並統一使用 C# 進行前後端開發時。
  • 優勢:Blazor 允許使用 C# 建立互動式 UI,對於 .NET 背景的工程師而言,技術轉移成本較低。
  • 結論:若未來無法適應前端框架的快速演進,或找不到合適的 JavaScript 驗證套件,轉向 Blazor 將是長期維護 .NET 專案的穩健選擇。

異動歷程

  • 2022-09-30 初版文件建立。